package cn.bonoon.kernel.io;

import java.util.Date;

import cn.bonoon.kernel.support.entities.EntityDeletable;

/**
 * 所有对文件进行存储的，都应该继承这个接口；
 * 文件存储的数量可能会很多，所以每种类型的文件都应该有自己单独的数据库进行存储
 * 
 * 可以使用{@link StorageCatalog}来指定名称和存在的默认的路径
 * 
 * @author jackson
 *
 */
public interface StoragePersistable extends EntityDeletable{

//	Long getId();
	
	void setFilename(String filename);
	String getFilename();
	
	void setPath(String path);
	String getPath();
	
	void setSize(Long size);
	/** 文件的大小 */
	Long getSize();
	/** 直接显示文件的大小 */
	String toSize();
	/** 判断是否有文件，由具体子类来进行判断 */
	boolean hasFile();
	
	void setCreateAt(Date createAt);
	Date getCreateAt();
	
	void setCheckedCount(Integer checkedCount);
	/** 这个文件被检查的次数，由文件管理器内部使用；每检查一次就会进行一个计数；如：检查当前文件是否可用等情况 */
	Integer getCheckedCount();
	
	void setCheckedAt(Date checkedAt);
	/** 最后一次检查的时间 */
	Date getCheckedAt();

	String getPostfix();
	void setPostfix(String postfix);
	
}
